package net.hn.hnms.biz.safety.water.service;

import net.hn.hnms.biz.api.feign.model.DataStateVo;
import net.hn.hnms.biz.api.safety.monitor.model.BaseSensorCoordDto;
import net.hn.hnms.biz.api.safety.water.model.StateTrendVo;
import net.hn.hnms.biz.api.safety.water.model.WaterAlarmVo;
import net.hn.hnms.biz.api.safety.water.model.WaterTodayInfoVo;
import net.hn.hnms.biz.safety.water.domain.WaterQuality;
import net.hn.hnms.biz.safety.water.domain.dto.HolerealDataDto;
import net.hn.hnms.biz.safety.water.domain.dto.HydrologyDataDto;
import net.hn.hnms.biz.safety.water.domain.vo.*;
import net.hn.hnms.sys.common.core.domain.ResponsePage;
import net.hn.hnms.sys.common.mybatis.core.page.PageQuery;

import java.util.List;

/**
 * @InterfaceName: RiskMonitorWaterService
 * @Description 水害监测界面服务
 * @Author 王龙
 * @Date 2022-09-26
 * @Version 0.1
 */
public interface RiskMonitorWaterService {
    /**
     * 今日信息
     * @return
     */
    WaterTodayInfoVo todayInfo(String mineCode);

    /**
     * 长观孔表格
     * @return
     */
    List<HolealVo> macropore(String mineCode);

    /**
     * 井下水文监测
     * @return
     */
    List<HydrologyVo> hydrology(String mineCode);

    /**
     * 今日报警
     * @return
     */
    WaterAlarmVo alarm(String mineCode);

    /**
     * 水害报警动态
     * @return
     */
    StateTrendVo alarmTrend(String mineCode);

    /**
     * 测点统计
     * @return
     */
    PointStatisticsVo indicator(String mineCode);

    /**
     * 水害报警动态列表
     * @return
     */
    List<AlarmTrendListVo> alarmTrendList();

    /**
     * 今日报警列表
     * @param alarmType
     * @return
     */
    List<AlarmTrendListVo> alarmList(String alarmType,String mineCode);

    /**
     * 数据查询-长观孔
     * @param pageQuery
     * @param holerealDataDto
     * @return
     */
    ResponsePage<HolerealDataVo> dataQueryHolerealPageList(PageQuery pageQuery, HolerealDataDto holerealDataDto);

    /**
     * 数据查询-井下水文
     * @param pageQuery
     * @param holerealDataDto
     * @return
     */
    ResponsePage<HydrologyDataVo> dataQueryHydrologyPageList(PageQuery pageQuery, HydrologyDataDto holerealDataDto);

    /**
     * 数据查询-长观孔下拉框-测点名称
     * @return
     */
    List<String> dataQueryHolerealPointName(String mineCode);

    /**
     * 数据查询-井下水文下拉框-测点名称
     * @return
     */
    List<String> dataQueryHydrologyPointName(String mineCode);

    /**
     * 数据查询-井下水文下拉框-监测地点
     * @return
     */
    List<String> dataQueryHydrologyPointLocaltion(String mineCode);

    /**
     * 数据查询(实时)-长观孔条件分页列表
     * @param pageQuery
     * @param holerealDataDto
     * @return
     */
    ResponsePage<HolerealDataVo> dataQueryNowHolerealPageList(PageQuery pageQuery, HolerealDataDto holerealDataDto);

    /**
     * 数据查询（实时）-井下水文条件分页列表
     * @param pageQuery
     * @param holerealDataDto
     * @return
     */
    ResponsePage<HydrologyDataVo> dataQueryNowHydrologyPageList(PageQuery pageQuery, HydrologyDataDto holerealDataDto);

    /**
     * 长管孔最新数据
     * @param mineCode
     * @param companyCode
     * @return
     */
    List<DataStateVo> getHolerealMaxTime(String mineCode, String companyCode);

    /**
     * 排水量最新数据
     * @param mineCode
     * @param companyCode
     * @return
     */
    List<DataStateVo> getPSLMaxTime(String mineCode, String companyCode);
    /**
     * 涌水量最新数据
     * @param mineCode
     * @param companyCode
     * @return
     */
    List<DataStateVo> getYSLMaxTime(String mineCode, String companyCode);

    /**
     * 获取水害防治BaseSensorTable表所有信息
     * @return
     */
    List<BaseSensorCoordDto> getBaseSensorTableAllList(String lambdaQueryWrapper);

    WaterQuality waterQuality(String mineCode);
}
